Data processing systems are often used to generate, manipulate or display large amounts of data. Subsystems to store data reliably and read or write data quickly are an important part of the overall system. In some applications, a dedicated storage server (which may be a file server or other type of data server) such as the Fiber-Attached Storage (“FAS”) line of servers produced by Network Appliance, Incorporated of Sunnyvale, California, can provide economical data storage through a convenient, network-accessible interface. Other data processing systems may store data on one or more mass storage devices, such as hard disk drives, that are connected directly to the system through a peripheral interface (and not to a separate storage server which is accessed through a data communication network).
In either configuration, the mass storage devices that actually contain the user data must provide a basic set of functions for the system to use. For example, “read” functionality is essential, and “write” functionality is common (though there are read-only devices as well). Other basic functions may also be required for a device to comply with the specification of the peripheral interface through which the device communicates with the system. Commonly-used interfaces include Integrated Device Electronics (“IDE”), Small Computer Systems Interface (“SCSI”), Serial Advanced Technology Attachment (“SATA”), and Fiber Channel (“FC”). In addition to “read” and “write” functions, most peripheral device interfaces permit the host system to query attached devices to discover their type, size, and other identifying information.
Some mass storage device manufacturers augment the basic or minimum functional set required to comply with a peripheral interface specification by adding functions to improve the speed, capacity, or other characteristics of the storage device. For example, a hard disk may be able to write all-zero data to specified sectors autonomously, without requiring the all-zero data bytes to be transferred from the system's memory (this is called a fast-zero write function). This function reduces the system support required by the disk to clear sectors to zero, so the system can apply its resources to perform more useful work. With respect to interface definitions that do not define such a function (IDE and SATA), fast-zero writing is a non-standard capability. A system that relied on the presence of fast-zero writing capability might operate incorrectly if a device without that capability was connected.
Non-standard capabilities are different from functions that are merely optional: optional functions are defined by the interface specification but need not be implemented in a device to meet the specification. Non-standard functions are generally manufacturer-specific and may change or be removed from hardware revision to revision. Non-standard functions are usually accessed through an extension command mechanism defined in the peripheral interface specification. A “non-standard function” is therefore defined herein as a function of a mass storage device that is not characterized as either required or optional in an interface specification describing the interface between the mass storage device and its host system. It is appreciated that some functions may be non-standard with respect to one peripheral interface standard, but be required or optional with respect to a different peripheral interface standard.
Examples of non-standard functions with respect to at least one peripheral interface standard include:                Self-test                    Device can perform a self-test operation and report the results (often in a manufacturer-dependent format)                        Failure analysis data storage function                    If a hard (unrecoverable) or soft (recoverable) error is encountered, device stores operating condition information for post-mortem analysis                        Zone checksum                    Device can calculate a checksum, cryptographic hash or similar verification value over a range of data bytes or sectors                        Extended Queue                    Device can accept a larger-than-standard number of pending operations in its command queue                        Firmware Download                    Device operation can be adjusted by downloading different firmware                        
Non-standard features are sometimes added by a manufacturer to address a need of a large consumer of storage devices. For example, a firm that produces high-capacity storage servers may obtain devices that implement a special function that helps the storage server operate better. These devices may be readily available when the server is manufactured, but may be scarce or expensive some time later, when a purchaser of the server wishes to replace a failed device or expand the server's capacity by adding new devices. Furthermore, between the server's original manufacture and the date of an attempted upgrade, different sets of non-standard features may have been implemented on storage devices, some of which are unknown to system software controlling the operation of the data processing system or storage server.
Methods of dynamically determining what non-standard features are available on a newly-detected mass storage device and adjusting system operation to take advantage of the device's capabilities may be useful in this field.